package com.yida.wy.common.service;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.yida.system.api.domain.SysFile;
import com.yida.wy.common.domain.WyUploadFile;

/**
 * @author Administrator
 * @date 2023/06/08
 */
public interface IWyFileService {

    /**
     * 默认文件文件上传
     * 
     * @param file
     * @return
     */
    WyUploadFile upload(MultipartFile file);

    /**
     * 文件上传，自主选择是否动态地址返回
     * 
     * @param file 文件
     * @param fileName 文件名(自定义文件名，二次上传时必传，首次上传可为空)
     * @param dynamicLinkFlag 动态标志 true:动态;false:固定地址
     * @return
     */
    WyUploadFile uploadFileDynamicLink(MultipartFile file, String fileName, boolean dynamicLinkFlag);

    /**
     * 获取文件信息
     * 
     * @param request
     * @param dynamicLinkFlag 动态标志 true:动态;false:固定地址
     * @return
     */
    SysFile getFileInfo(String fileName, boolean dynamicLinkFlag);

    /**
     * 获取文件组信息
     * 
     * @param request
     * @param dynamicLinkFlag 动态标志 true:动态;false:固定地址
     * @return
     */
    List<SysFile> getFileInfoList(List<String> fileNames, boolean dynamicLinkFlag);

    /**
     * 根据文件名删除文件（需确保当前文件名在公维金全局唯一）
     * 
     * @param fileName
     * @return
     */
    boolean delFile(String fileName);

}
